function promisify(fn) {
  return function (...args) {
    return new Promise((rs, rj) => {
      try {
        fn.bind(null, ...args, (err, data) => {
          err ? rj(err) : rs(data);
        })();
      } catch (err) {
        rj(err);
      }
    });
  };
}

module.exports = {
  promisify,
};
